/**
 * 数字格式化
 * @param {String|Number} numStr 数字
 * @param {Number} precision 精度
 * @param {Boolean} useChineseUnit 是否使用中文
 */
export function numberFormatter(numStr, precision = 1, useChineseUnit = false) {
  let num = numStr
  if (typeof numStr !== 'number') {
    num = parseFloat(numStr)
    if (isNaN(num)) return numStr
  }
  // 万
  if (num >= Math.pow(10.0, 4)) {
    return (num / Math.pow(10.0, 4)).toFixed(precision).concat(useChineseUnit ? '万' : 'w')
  }
  // 千
  if (num >= Math.pow(10.0, 3)) {
    return (num / Math.pow(10.0, 3)).toFixed(precision).concat(useChineseUnit ? '千' : 'k')
  }
  return numStr
}

/**
 * 金额格式化--千分位加逗号
 */
export function amountFormatter(amountStr, precision = 2) {
  const numList = String(amountStr).split('.')

  // 整数部分
  const intStr = numList[0].split('').reverse().reduce((pre, current, index) => {
    return (index % 3 ? current : (current + ',')) + pre
  }, '')
  // 小数部分
  let floatStr = numList.length >= 2 ? '0.' + numList[1] : '0'
  let floatNum = parseFloat(floatStr)
  if (isNaN(floatNum)) floatNum = 0
  fl0oatStr = floatNum.toFixed(precision)
  if (floatStr.indexOf('.') !== -1) {
    floatStr = floatStr.substr(floatStr.indexOf('.'))
  }

  return intStr.concat(floatStr)
}
